package com.zx.test.core.util;

import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.common.profile.Language;
import com.tencentcloudapi.cvm.v20170312.CvmClient;
import org.springframework.stereotype.Service;

@Service
public class TxyClient {


    private Credential getCredential(String secretId, String secretKey) {
        return new Credential(secretId, secretKey);
    }

    private ClientProfile initClientProfile() {
//        Credential cred = new Credential("secretId", "secretKey");

        // 实例化一个http选项，可选的，没有特殊需求可以跳过
        HttpProfile httpProfile = new HttpProfile();
        //  从3.1.16版本开始, 单独设置 HTTP 代理
        // httpProfile.setProxyHost("真实代理ip");
        // httpProfile.setProxyPort(真实代理端口);
        httpProfile.setReqMethod("POST"); // get请求(默认为post请求)
        httpProfile.setProtocol("https://");  // 在外网互通的网络环境下支持http协议(默认是https协议),请选择(https:// or http://)
        httpProfile.setConnTimeout(30); // 请求连接超时时间，单位为秒(默认60秒)
        httpProfile.setWriteTimeout(30);  // 设置写入超时时间，单位为秒(默认0秒)
        httpProfile.setReadTimeout(30);  // 设置读取超时时间，单位为秒(默认0秒)
//        httpProfile.setEndpoint("cvm.ap-shanghai.tencentcloudapi.com"); // 指定接入地域域名(默认就近接入)

        // 实例化一个client选项，可选的，没有特殊需求可以跳过
        ClientProfile clientProfile = new ClientProfile();
        clientProfile.setSignMethod("HmacSHA256"); // 指定签名算法(默认为HmacSHA256)
        // 自3.1.80版本开始，SDK 支持打印日志。
        clientProfile.setHttpProfile(httpProfile);
        clientProfile.setDebug(false);
        // 从3.1.16版本开始，支持设置公共参数 Language, 默认不传，选择(ZH_CN or EN_US)
        clientProfile.setLanguage(Language.ZH_CN);
        return clientProfile;
    }

    public CvmClient buildCvmClient(String region) {
        ClientProfile clientProfile = initClientProfile();
        Credential cred = getCredential("", "");
        return new CvmClient(cred, region, clientProfile);
    }


}
